package com.hs.srm.admin.modules.harmfulsubstance.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.hs.srm.base.common.base.CloneableEntity;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;

/**
 * (ReportRepositoryEntity)实体类
 *
 * @author ych
 * @since 2020-03-17 16:42:42
 */

@Setter
@Getter
@TableName("report_repository")
public class ReportRepositoryEntity implements Serializable, CloneableEntity<ReportRepositoryEntity> {

    private static final long serialVersionUID = -39930191484835335L;

    /**
     * 有效
     */
    public static final int YX = 0;

    /**
     * 无效
     */
    public static final int WX = -2;

    /**
     * 预警中
     */
    public static final int YJZ = 2;

    /**
     * 无效
     */
    public static final int FQ = -1;

    /**
     * 报告库id
     */
    @TableId(value = "pk_id", type = IdType.UUID)
    @TableField("pk_id")
    private String pkId;

    /**
     * 第三方报告委托单位
     */
    @TableField("consignee")
    private String consignee;

    /**
     * 检测机构
     */
    @TableField("testing_institution")
    private String testingInstitution;

    /**
     * 测试报告编号
     */
    @TableField("report_code")
    private String reportCode;

    /**
     * 报告日期
     */
    @JSONField(format = "yyyy-MM-dd")
    @TableField("report_date")
    private Date reportDate;

    /**
     * 有效期至
     */
    @JSONField(format = "yyyy-MM-dd")
    @TableField("expire_date")
    private Date expireDate;

    /**
     * 是否有效，生效状态：0，有效；-2，无效；-1，作废；2，预警中
     */
    @TableField("valid")
    private Integer valid;

    /**
     * 原测试报告号
     */
    @TableField("original_report_code")
    private String originalReportCode;

    /**
     * 提交人
     */
    @TableField("submitter")
    private String submitter;

    /**
     * 供应商编码
     */
    @TableField("vendor_code")
    private String vendorCode;

    /**
     * 供应商名称
     */
    @TableField("vendor_name")
    private String vendorName;

    /**
     * 提交日期
     */
    @JSONField(format = "yyyy-MM-dd")
    @TableField("submit_date")
    private Date submitDate;

    /**
     * 是否替换旧报告：0，否；1，是
     */
    @TableField("replaced")
    private Integer replaced;

    /**
     * 附件
     */
    @TableField("attach")
    private String attach;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 创建人
     */
    @TableField("creator")
    private String creator;

    /**
     * 创建时间
     */
    @JSONField(format = "yyyy-MM-dd")
    @TableField("create_date")
    private Date createDate;

    @Override
    public ReportRepositoryEntity clone() {
        try {
            return (ReportRepositoryEntity) super.clone();
        } catch (CloneNotSupportedException ex) {
            ex.printStackTrace();
        }
        return null;
    }
}